package 框架学习.MyBatisPlus.增删改查.增加;

/**
 * 增加<p>
 * 详见项目：<a href="">springboot-mybatis-plus-insert</a>
 */
public class index {
    /**
     * 1、id生成策略（增加的时候主键生成的问题）<p>
     * 不同的场景中，主键的生成策略可能是不一样的<p>
     * 比如日志表的主键不是很重要，可以直接自增<p>
     * 而又比如购物订单，主键不是数字，还包含字母（订单编号）<p>
     * 再比如外卖单，主键每个部分是有不同含义的，关联着地区、日期等信息<p>
     * 在比如某些关系表，可以省略id（主键）<p></p>
     * <p></p>
     * 为了适配不同的主键生成策略<p>
     * MP中就有一个注解：<a href="">@TableId</a><p>
     * 用于控制注解生成策略<p>
     * 使用位置：实体类中对应数据库表主键的属性定义处<p>
     * 注解属性：<p>
     * 1、value：设置数据库主键名称<p>
     * 2、type：设置主键生成策略，值参照<a href="">IdType</a>枚举值<p></p>
     * <p></p>
     * 雪花算法：<p>
     * 生成一个串，这个串由一个64位的二进制组成<p>
     * 最终得到的，其实就是一个long类型的值<p>
     * 这64位，分不同的部分：<p>
     * 第一位（最高位）：占位符，默认为0（也是符号位，如果是1就成负的了，看着不舒服）<p></p>
     * 之后的41位：时间戳，在调用雪花算法时对应的时间（精确到毫秒），但这个和系统算法是不一样的<p></p>
     * 之后的10位：机器码，分两部分，每部分5位，来表示这是哪台计算机，前面5位部分是一个群组标记，后面的5位部分是一个机器的标记<p>
     * 这个码的存在，就防止了多台服务器做同一件事的id重复的问题<p></p>
     * 最后的12位：序列号，为了防止同一台服务器同时申请多个id的重复问题<p></p>
     * <p></p>
     * <p>
     * 上面这种注解的方式，使用显得很繁琐（每个实体类都要写一个）<p>
     * 我们可以将其简化，使用配置来设定id生成策略<p>
     * 在配置文件中，就可以做一个全局设定，让每一个实体类都使用相同的策略<p>
     *
     * @param args
     */
    public static void main(String[] args) {

    }
}
